<!-- HTML header for doxygen 1.8.18-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Ipopt: Ipopt::Subject Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 40px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Ipopt Documentation
   &#160;<!--span id="projectnumber">3.14.12</span-->
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classIpopt_1_1Subject.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classIpopt_1_1Subject-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Ipopt::Subject Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Slight Variation of the <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a> Design Pattern (<a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a> part).  
 <a href="classIpopt_1_1Subject.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Ipopt::Subject:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classIpopt_1_1Subject__inherit__graph.png" border="0" usemap="#Ipopt_1_1Subject_inherit__map" alt="Inheritance graph"/></div>
<map name="Ipopt_1_1Subject_inherit__map" id="Ipopt_1_1Subject_inherit__map">
<area shape="rect" title="Slight Variation of the Observer Design Pattern (Subject part)." alt="" coords="5,477,116,504"/>
<area shape="rect" href="classIpopt_1_1TaggedObject.html" title="TaggedObject class." alt="" coords="164,477,315,504"/>
<area shape="rect" href="classIpopt_1_1Matrix.html" title="Matrix Base Class." alt="" coords="363,300,468,327"/>
<area shape="rect" href="classIpopt_1_1Vector.html" title="Vector Base Class." alt="" coords="363,604,467,631"/>
<area shape="rect" href="classIpopt_1_1CompoundMatrix.html" title="Class for Matrices consisting of other matrices." alt="" coords="529,5,704,32"/>
<area shape="rect" href="classIpopt_1_1DenseGenMatrix.html" title="Class for dense general matrices." alt="" coords="531,56,703,83"/>
<area shape="rect" href="classIpopt_1_1ExpandedMultiVectorMatrix.html" title="Class for Matrices with few rows that consists of Vectors, together with a premultiplied Expansion ma..." alt="" coords="516,107,717,149"/>
<area shape="rect" href="classIpopt_1_1ExpansionMatrix.html" title="Class for expansion/projection matrices." alt="" coords="531,173,703,200"/>
<area shape="rect" href="classIpopt_1_1GenTMatrix.html" title="Class for general matrices stored in triplet format." alt="" coords="547,224,686,251"/>
<area shape="rect" href="classIpopt_1_1MultiVectorMatrix.html" title="Class for Matrices with few columns that consists of Vectors." alt="" coords="527,275,706,301"/>
<area shape="rect" href="classIpopt_1_1ScaledMatrix.html" title="Class for a Matrix in conjunction with its scaling factors for row and column scaling." alt="" coords="543,325,691,352"/>
<area shape="rect" href="classIpopt_1_1SumMatrix.html" title="Class for Matrices which are sum of matrices." alt="" coords="549,376,684,403"/>
<area shape="rect" href="classIpopt_1_1SymMatrix.html" title="This is the base class for all derived symmetric matrix types." alt="" coords="549,427,684,453"/>
<area shape="rect" href="classIpopt_1_1TransposeMatrix.html" title="Class for Matrices which are the transpose of another matrix." alt="" coords="531,477,702,504"/>
<area shape="rect" href="classIpopt_1_1ZeroMatrix.html" title="Class for Matrices with only zero entries." alt="" coords="549,528,684,555"/>
<area shape="rect" href="classIpopt_1_1CompoundSymMatrix.html" title="Class for symmetric matrices consisting of other matrices." alt="" coords="783,199,987,225"/>
<area shape="rect" href="classIpopt_1_1DenseSymMatrix.html" title="Class for dense symmetric matrices." alt="" coords="798,249,973,276"/>
<area shape="rect" href="classIpopt_1_1DiagMatrix.html" title="Class for diagonal matrices." alt="" coords="818,300,953,327"/>
<area shape="rect" href="classIpopt_1_1IdentityMatrix.html" title="Class for Matrices which are multiples of the identity matrix." alt="" coords="808,351,963,377"/>
<area shape="rect" href="classIpopt_1_1LowRankUpdateSymMatrix.html" title="Class for symmetric matrices, represented as low&#45;rank updates." alt="" coords="765,401,1005,428"/>
<area shape="rect" href="classIpopt_1_1SumSymMatrix.html" title="Class for Matrices which are sum of symmetric matrices." alt="" coords="804,452,967,479"/>
<area shape="rect" href="classIpopt_1_1SymScaledMatrix.html" title="Class for a Matrix in conjunction with its scaling factors for row and column scaling." alt="" coords="797,503,974,529"/>
<area shape="rect" href="classIpopt_1_1SymTMatrix.html" title="Class for symmetric matrices stored in triplet format." alt="" coords="814,553,957,580"/>
<area shape="rect" href="classIpopt_1_1ZeroSymMatrix.html" title="Class for Symmetric Matrices with only zero entries." alt="" coords="803,604,967,631"/>
<area shape="rect" href="classIpopt_1_1CompoundVector.html" title="Class of Vectors consisting of other vectors." alt="" coords="529,604,704,631"/>
<area shape="rect" href="classIpopt_1_1DenseVector.html" title="Dense Vector Implementation." alt="" coords="544,655,689,681"/>
<area shape="rect" href="classIpopt_1_1IteratesVector.html" title="Specialized CompoundVector class specifically for the algorithm iterates." alt="" coords="808,655,963,681"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Constructors/Destructors</div></td></tr>
<tr class="memitem:a547af0012802082f3d7b869041bfabaf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Subject.html#a547af0012802082f3d7b869041bfabaf">Subject</a> ()</td></tr>
<tr class="memdesc:a547af0012802082f3d7b869041bfabaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Constructor.  <a href="classIpopt_1_1Subject.html#a547af0012802082f3d7b869041bfabaf">More...</a><br /></td></tr>
<tr class="separator:a547af0012802082f3d7b869041bfabaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdb4a5e05cc2afd41064985d55d96f6d"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Subject.html#abdb4a5e05cc2afd41064985d55d96f6d">~Subject</a> ()</td></tr>
<tr class="memdesc:abdb4a5e05cc2afd41064985d55d96f6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="classIpopt_1_1Subject.html#abdb4a5e05cc2afd41064985d55d96f6d">More...</a><br /></td></tr>
<tr class="separator:abdb4a5e05cc2afd41064985d55d96f6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Methods to Add and Remove Observers.</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Currently, the notify_type flags are not used, and Observers are attached in general and will receive all notifications (of the type requested and possibly of types not requested).</p>
<p>It is up to the observer to ignore the types they are not interested in. The NotifyType in the parameter list is so a more efficient mechanism depending on type could be implemented later if necessary. </p>
</div></td></tr>
<tr class="memitem:a7a5d0d8fa91fa9cea12e53682ad82042"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Subject.html#a7a5d0d8fa91fa9cea12e53682ad82042">AttachObserver</a> (<a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">Observer::NotifyType</a> notify_type, <a class="el" href="classIpopt_1_1Observer.html">Observer</a> *observer) const</td></tr>
<tr class="memdesc:a7a5d0d8fa91fa9cea12e53682ad82042"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach the specified observer (i.e., begin receiving notifications).  <a href="classIpopt_1_1Subject.html#a7a5d0d8fa91fa9cea12e53682ad82042">More...</a><br /></td></tr>
<tr class="separator:a7a5d0d8fa91fa9cea12e53682ad82042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a907d18f260ed26a5549538f3c09e5f56"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Subject.html#a907d18f260ed26a5549538f3c09e5f56">DetachObserver</a> (<a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">Observer::NotifyType</a> notify_type, <a class="el" href="classIpopt_1_1Observer.html">Observer</a> *observer) const</td></tr>
<tr class="memdesc:a907d18f260ed26a5549538f3c09e5f56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detach the specified observer (i.e., no longer receive notifications).  <a href="classIpopt_1_1Subject.html#a907d18f260ed26a5549538f3c09e5f56">More...</a><br /></td></tr>
<tr class="separator:a907d18f260ed26a5549538f3c09e5f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a001f4269d74149f9d45930ef7102c0a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Subject.html#a001f4269d74149f9d45930ef7102c0a4">Notify</a> (<a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">Observer::NotifyType</a> notify_type) const</td></tr>
<tr class="separator:a001f4269d74149f9d45930ef7102c0a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Default Compiler Generated Methods</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>(Hidden to avoid implicit creation/calling).</p>
<p>These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called. </p>
</div></td></tr>
<tr class="memitem:a513b28f73029820053d572fcb5c91099"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Subject.html#a513b28f73029820053d572fcb5c91099">Subject</a> (const <a class="el" href="classIpopt_1_1Subject.html">Subject</a> &amp;)</td></tr>
<tr class="memdesc:a513b28f73029820053d572fcb5c91099"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy Constructor.  <a href="classIpopt_1_1Subject.html#a513b28f73029820053d572fcb5c91099">More...</a><br /></td></tr>
<tr class="separator:a513b28f73029820053d572fcb5c91099"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd49cfba8bc02fd276614ec45112aa04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Subject.html#acd49cfba8bc02fd276614ec45112aa04">operator=</a> (const <a class="el" href="classIpopt_1_1Subject.html">Subject</a> &amp;)</td></tr>
<tr class="memdesc:acd49cfba8bc02fd276614ec45112aa04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Assignment Operator.  <a href="classIpopt_1_1Subject.html#acd49cfba8bc02fd276614ec45112aa04">More...</a><br /></td></tr>
<tr class="separator:acd49cfba8bc02fd276614ec45112aa04"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:acc183912291569c2198d3b8109a79d6f"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classIpopt_1_1Observer.html">Observer</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classIpopt_1_1Subject.html#acc183912291569c2198d3b8109a79d6f">observers_</a></td></tr>
<tr class="separator:acc183912291569c2198d3b8109a79d6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Slight Variation of the <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a> Design Pattern (<a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a> part). </p>
<p>This class implements the <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a> class of the <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a> Design Pattern. An <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a> "Attach"es to a <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a>, indicating that it would like to be notified of changes in the <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a>. Any derived class that is to be observed has to inherit off the <a class="el" href="classIpopt_1_1Subject.html" title="Slight Variation of the Observer Design Pattern (Subject part).">Subject</a> base class. If the subject needs to notify the <a class="el" href="classIpopt_1_1Observer.html" title="Slight Variation of the Observer Design Pattern.">Observer</a>, it calls the Notify method. </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00149">149</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a547af0012802082f3d7b869041bfabaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a547af0012802082f3d7b869041bfabaf">&#9670;&nbsp;</a></span>Subject() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Ipopt::Subject::Subject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default Constructor. </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00159">159</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<a id="abdb4a5e05cc2afd41064985d55d96f6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdb4a5e05cc2afd41064985d55d96f6d">&#9670;&nbsp;</a></span>~Subject()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Ipopt::Subject::~Subject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00343">343</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<a id="a513b28f73029820053d572fcb5c91099"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a513b28f73029820053d572fcb5c91099">&#9670;&nbsp;</a></span>Subject() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Ipopt::Subject::Subject </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Subject.html">Subject</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy Constructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a7a5d0d8fa91fa9cea12e53682ad82042"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a5d0d8fa91fa9cea12e53682ad82042">&#9670;&nbsp;</a></span>AttachObserver()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Ipopt::Subject::AttachObserver </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">Observer::NotifyType</a>&#160;</td>
          <td class="paramname"><em>notify_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Observer.html">Observer</a> *&#160;</td>
          <td class="paramname"><em>observer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Attach the specified observer (i.e., begin receiving notifications). </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00356">356</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<a id="a907d18f260ed26a5549538f3c09e5f56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a907d18f260ed26a5549538f3c09e5f56">&#9670;&nbsp;</a></span>DetachObserver()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Ipopt::Subject::DetachObserver </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">Observer::NotifyType</a>&#160;</td>
          <td class="paramname"><em>notify_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Observer.html">Observer</a> *&#160;</td>
          <td class="paramname"><em>observer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Detach the specified observer (i.e., no longer receive notifications). </p>

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00379">379</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<a id="a001f4269d74149f9d45930ef7102c0a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a001f4269d74149f9d45930ef7102c0a4">&#9670;&nbsp;</a></span>Notify()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Ipopt::Subject::Notify </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classIpopt_1_1Observer.html#a828a9e0833e87e84bef75d05bf0a99b8">Observer::NotifyType</a>&#160;</td>
          <td class="paramname"><em>notify_type</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00406">406</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<a id="acd49cfba8bc02fd276614ec45112aa04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd49cfba8bc02fd276614ec45112aa04">&#9670;&nbsp;</a></span>operator=()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Ipopt::Subject::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classIpopt_1_1Subject.html">Subject</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default Assignment Operator. </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="acc183912291569c2198d3b8109a79d6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc183912291569c2198d3b8109a79d6f">&#9670;&nbsp;</a></span>observers_</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classIpopt_1_1Observer.html">Observer</a>*&gt; Ipopt::Subject::observers_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="IpObserver_8hpp_source.html#l00226">226</a> of file <a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/Common/<a class="el" href="IpObserver_8hpp_source.html">IpObserver.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
</body>
</html>
